﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL;
using System.Data;
using System.IO;
using System.Configuration;
using System.Transactions;
using System.Data.Linq;
using System.ComponentModel;
using UtilityExtensions;


namespace BOL.RendicionVentas
{
    public class GetDepositoVentaExcel
    {
        int _count;
        public int Count(int idProyecto,
                            int idCuenta,
                         string clienteStr, 
                         string numDocumentoStr,
                         int idcuenta,
                         DateTime fechaInicio,
                         DateTime fechaFin
                         )

             
        {
            return _count;
        }


        


        


        [DataObjectMethod(DataObjectMethodType.Select, false)]
        public IEnumerable<DepositioVentaInfo> Execute(int idProyecto, 
                            int idCuenta,
                         string clienteStr, 
                         string numDocumentoStr,
                         int idcuenta,
                         DateTime fechaInicio,
                         DateTime fechaFin
                         )
        {

            if (!clienteStr.HasValue())
                clienteStr = string.Empty;
            if (!numDocumentoStr.HasValue())
                numDocumentoStr = string.Empty;

            
            
            var q = new GetDepositoVentaList().ApplySelect_ListInfo();

                 q = q.Where(a => a.fecha >= fechaInicio
                            & a.fecha <= fechaFin
                            & a.numDeposito.Contains(numDocumentoStr)
                            & a.idProyecto == idProyecto
                            & a.cliente.Contains(clienteStr)
                            & (idCuenta == 0 ? a.idCuenta != idCuenta : a.idCuenta == idCuenta)
                            );
            
            _count = q.Count();
            
            
            return q;
        }

    }
}
